CREATE TABLE [dbo].[GroupMain]
(
[GroupKey] [uniqueidentifier] NOT NULL CONSTRAINT [DF_GroupMain_GroupKey] DEFAULT (newid()),
[Name] [nvarchar] (65) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_GroupMain_Name] DEFAULT (''),
[Description] [nvarchar] (250) COLLATE SQL_Latin1_General_CP1_CI_AS NULL CONSTRAINT [DF_GroupMain_Description] DEFAULT (''),
[UpdatedByUserKey] [uniqueidentifier] NOT NULL,
[UpdatedOn] [datetime] NOT NULL CONSTRAINT [DF_GroupMain_UpdatedOn] DEFAULT (getdate()),
[IsSystem] [bit] NOT NULL CONSTRAINT [DF_GroupMain_IsSystem] DEFAULT ((0)),
[IsAutoGenerated] [bit] NOT NULL CONSTRAINT [DF_GroupMain_IsAutoGenerated] DEFAULT ((0)),
[GroupTypeKey] [uniqueidentifier] NOT NULL,
[Priority] [int] NULL,
[OwnerAccessKey] [uniqueidentifier] NULL,
[OverrideOwnerGroupKey] [uniqueidentifier] NULL,
[AccessKey] [uniqueidentifier] NOT NULL,
[CreatedByUserKey] [uniqueidentifier] NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[SystemEntityKey] [uniqueidentifier] NULL,
[IsInvitationOnly] [bit] NOT NULL,
[GroupStatusCode] [nvarchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[IsSimpleGroup] [bit] NOT NULL CONSTRAINT [DF_GroupMain_IsSimpleGroup] DEFAULT ((0)),
[InheritRolesFlag] [bit] NOT NULL CONSTRAINT [DF_GroupMain_InheritRolesFlag] DEFAULT ((0)),
[IsSingleRole] [bit] NOT NULL CONSTRAINT [DF_GroupMain_IsSingleRole] DEFAULT ((0)),
[MarkedForDeleteOn] [datetime] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [PK_GroupMain] PRIMARY KEY CLUSTERED ([GroupKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [AK_GroupMain_AccessKey] ON [dbo].[GroupMain] ([AccessKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_AccessKey] ON [dbo].[GroupMain] ([AccessKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_CreatedByUserKey] ON [dbo].[GroupMain] ([CreatedByUserKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_GroupStatusCode] ON [dbo].[GroupMain] ([GroupStatusCode]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_GroupTypeKey] ON [dbo].[GroupMain] ([GroupTypeKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_Name] ON [dbo].[GroupMain] ([Name]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [AK_GroupMain_OverrideOwnerGroupKey] ON [dbo].[GroupMain] ([OverrideOwnerGroupKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_OverrideOwnerGroupKey] ON [dbo].[GroupMain] ([OverrideOwnerGroupKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [AK_GroupMain_OwnerAccessKey] ON [dbo].[GroupMain] ([OwnerAccessKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_OwnerAccessKey] ON [dbo].[GroupMain] ([OwnerAccessKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_SystemEntityKey] ON [dbo].[GroupMain] ([SystemEntityKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_GroupMain_UpdatedByUserKey] ON [dbo].[GroupMain] ([UpdatedByUserKey]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_AccessMain] FOREIGN KEY ([AccessKey]) REFERENCES [dbo].[AccessMain] ([AccessKey])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_AccessMain_Owner] FOREIGN KEY ([OwnerAccessKey]) REFERENCES [dbo].[AccessMain] ([AccessKey])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_GroupMain_OverrideOwner] FOREIGN KEY ([OverrideOwnerGroupKey]) REFERENCES [dbo].[GroupMain] ([GroupKey])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_GroupStatusRef] FOREIGN KEY ([GroupStatusCode]) REFERENCES [dbo].[GroupStatusRef] ([GroupStatusCode])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_GroupTypeRef] FOREIGN KEY ([GroupTypeKey]) REFERENCES [dbo].[GroupTypeRef] ([GroupTypeKey])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_SystemEntity] FOREIGN KEY ([SystemEntityKey]) REFERENCES [dbo].[SystemEntity] ([SystemEntityKey])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_UniformRegistry] FOREIGN KEY ([GroupKey]) REFERENCES [dbo].[UniformRegistry] ([UniformKey])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_UserMain_CreatedBy] FOREIGN KEY ([CreatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
ALTER TABLE [dbo].[GroupMain] ADD CONSTRAINT [FK_GroupMain_UserMain_UpdatedBy] FOREIGN KEY ([UpdatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO